#include <any>
#include <iostream>
#include <string>

int main() {
    std::any a = 10;
    std::cout << std::any_cast<int>(a) << '\n';  // 安全地提取 int

    a = std::string("Hello, std::any!");
    std::cout << std::any_cast<std::string>(a) << '\n';  // 安全地提取 std::string

    try {
        std::cout << std::any_cast<double>(a) << '\n';  // 抛出 std::bad_any_cast
    } catch (const std::bad_any_cast& e) {
        std::cout << "Caught an exception: " << e.what() << '\n';
    }
}